package com.janmu.zzlstore.dispatcher;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.janmu.zzlstore.constants.GlobalConstants;
import com.janmu.zzlstore.message.resp.Article;
import com.janmu.zzlstore.message.resp.NewsMessage;
import com.janmu.zzlstore.message.resp.TextMessage;
import com.janmu.zzlstore.util.MessageUtil;

/**
 * ClassName: MsgDispatcher
 * @Description: 消息业务处理分发器
 * @author dapengniao
 * @date 2016 年 3 月 7 日 下午 4:04:21
 */
public class MsgDispatcher {
    public static String processMessage(Map<String, String> map) {
    	String openid=map.get("FromUserName"); //用户 openid
    	String mpid=map.get("ToUserName");   //公众号原始 ID
        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) { // 文本消息
        	//普通文本消息
        	TextMessage txtmsg=new TextMessage();
        	txtmsg.setToUserName(openid);
        	txtmsg.setFromUserName(mpid);
        	txtmsg.setCreateTime(new Date().getTime());
        	txtmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
        	String content=map.get("Content");
            if(content.contains("烟")){
                txtmsg.setContent("红狼：7元/包->库存：100包\n白狼：7元/ 包->库存：100包\n大前门：3元/包->库存：100包");
            }else if("酒".equals(content)){
                txtmsg.setContent("雪津：56元/箱->库存：100箱\n惠泉：52元/箱->库存：100箱\n百威：80元/箱->库存：100箱");
            }else if("生活用品".equals(content)){
                txtmsg.setContent("毛巾：6元/条->库存：100条\n盐：1.2元/包->库存：100包\n牙刷：1元/支->库存：100支");
            }else{
                txtmsg.setContent("抱歉！努力进货中...\n您可以输入【烟、酒、生活用品等】");
            }
            return MessageUtil.textMessageToXml(txtmsg);       	
        }

        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)) { // 图片消息
        	//对图文消息
            NewsMessage newmsg=new NewsMessage();
            newmsg.setToUserName(openid);
            newmsg.setFromUserName(mpid);
            newmsg.setCreateTime(new Date().getTime());
            newmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);
            if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_IMAGE)) { // 图片消息
                Article article=new Article();
                article.setDescription("图文消息"); //图文消息的描述
                article.setPicUrl(GlobalConstants.DOMAIN_NAME+"style/image/weixiao.jpg"); //图文消息图片地址
                article.setTitle("图文消息");  //图文消息标题
                article.setUrl(GlobalConstants.DOMAIN_NAME);  //图文 url 链接
                List<Article> list=new ArrayList<Article>();
                list.add(article);     //这里发送的是单图文，如果需要发送多图文则在这里 list 中加入多个 Article 即可！
                newmsg.setArticleCount(list.size());
                newmsg.setArticles(list);
                return MessageUtil.newsMessageToXml(newmsg);
            }      
        }

        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_LINK)) { // 链接消息
            System.out.println("==============这是链接消息！");
        }

        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_LOCATION)) { // 位置消息
            System.out.println("==============这是位置消息！");
        }

        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_VIDEO)) { // 视频消息
            System.out.println("==============这是视频消息！");
        }

        if (map.get("MsgType").equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)) { // 语音消息
            System.out.println("==============这是语音消息！");
        }
        return null;
    }
}
